<?php

session_start();

require('setlang.php');
require('Models/basics.php');
require('Models/connectBDD.php');
require('Models/formerrors.php');
require('Models/bienproprio.php');
require('Models/comment.php');
require('Models/adresse.php');
require('Models/ariane.php');
	
$Ariane = getArianeGenealogy();

$connexion = PDO_BDD_connect();

$goods = getProprioGoods($connexion);
//Si on a passé un bien et qu'il appartient bien au propriétaire
if (isset($_POST["good"]) && isOwnedByUser($connexion,$_POST["good"]))
{
	//Si on est en mode édition, en mode images ou en mode commentaires
	if (isset($_POST["editer"]) || isset($_POST["pics"]) || isset($_POST["coms"]))
	{
		//Si on gère les commentaires, on les charge
		if (isset($_POST["coms"]))
		{
			$advices = GetLocationAdvices($connexion, $_POST["good"]);
		}
		//Si on passe un lien de fichier
		if (isset($_POST["filename"]) && is_pic("Locations/".$_POST["good"]."/".$_POST["filename"]))
		{
			$folder = "Locations/".$_POST["good"]."/";
			$filename = $_POST["filename"];
			//Si on l'interdit, on la renomme en non, ce qui la cache
			if (isset($_POST["unauth"]))
			{
				rename($folder.$filename,$folder."non_".substr($filename,4,strlen($filename)-4));
			}
			//Si on l'autorise, on la renomme en oui, ce que l'affiche
			else if (isset($_POST["auth"]))
			{
				rename($folder.$filename,$folder."oui_".substr($filename,4,strlen($filename)-4));
			}
			//Si on la met par défaut, on fait le renommage
			else if (isset($_POST["default"]))
			{
				$default = makeDefaultImage($filename,$folder);
			}
			//Enfin si on la supprime, on l'unlink
			else if (isset($_POST["delete"]))
			{
				$deleted = unlink($folder.$filename);
			}
		}
		//Dans ce cas on cherche à véirifer qu'on ait l'id d'un commentaire, l'id d'un bien, que le commentaire s'adresse bien à ce bien.
		else if (isset($_POST["comId"]) && isset($_POST["good"]) && isReallyForGood($connexion,$_POST["comId"],$_POST["good"]))
		{
			//De même pour les commentaires
			if (isset($_POST["unauth"]))
			{
				setAuthorisationComment($connexion,$_POST["comId"],false);
			}
			else if (isset($_POST["auth"]))
			{
				setAuthorisationComment($connexion,$_POST["comId"],true);
			}
			//On recharge ensuite les avis de ce bien
			$advices = GetLocationAdvices($connexion, $_POST["good"]);
			
		}
		//Si on ajoute un fichier (cf historyClient)
		else if (isset($_POST["validerFile"]))
		{
			$filename = $_FILES['file']['name'];
			$filepath = pathinfo($filename);
			$extension = strtolower($filepath['extension']);
			$allowedExt = array("jpg", "png", "bmp");
			if (!(in_array($extension, $allowedExt))) {
				$extError = true;
			} else {
				if (!is_dir("Locations/".$_POST["good"]."/"))
				{
					mkdir("Locations/".$_POST["good"]."/",0777);
					chmod("Locations/".$_POST["good"]."/",0777);
				}
				$folder = "Locations/".$_POST["good"]."/";
				$newname = "oui_".date("YmdHis").".".$extension;

				if (move_uploaded_file($_FILES["file"]["tmp_name"], $folder.$newname)) {
					$upload = true;
					chmod($folder.$newname,0777);
					
					if ($extension != "png")
					{
						convertToPng($newname,$folder,true);
					}
					
				} else {
					$upload = false;
				}
			}
		}
		//Si on valide une description, on met à jour tous les champs
		else if (isset($_POST['validerdescription']))
		{
			
			$errors = getFormErrors(array("e-mail","descriptionFr","descriptionEn"),"POST");
			
			if (empty($errors))
			{
			
				$descriptions = getGoodDescriptions($connexion,$_POST["good"]);
				
				if (isset($descriptions["french"]))
				{
					updateGoodDescription($connexion,$_POST["good"],1,$_POST["descriptionFr"]);
				}
				else
				{
					addGoodDescription($connexion,$_POST["good"],1,$_POST["descriptionFr"]);
				}
				
				if (isset($descriptions["english"]))
				{
					updateGoodDescription($connexion,$_POST["good"],2,$_POST["descriptionEn"]);
				}
				else
				{
					addGoodDescription($connexion,$_POST["good"],2,$_POST["descriptionEn"]);
				}
				
			}
			
		}
		//Si on valide le changement d'une adresse
		else if (isset($_POST['valideradresse']))
		{
			
			$errors = getFormErrors(array("e-mail","numero","rue_1","rue_2","rue_3","cp","ville","pays"),"POST");
		
			if (isset($_POST["rue_1"]))
			{
				if (array_search("rue_2",$errors) !== false)
				{
					unset($errors[array_search("rue_2",$errors)]);
				}
				if (array_search("rue_3",$errors) !== false)
				{
					unset($errors[array_search("rue_3",$errors)]);
				}
			}
			
			if (empty($errors))
			{
				
				$adresse = existsAddress($connexion);
				
				if ($adresse == 0) {
				
					$adresse = addAddress($connexion);
					
					if ($adresse == -1) {
						die("Une erreur s'est produite lors de l'ajout de l'adresse. Veuillez contactez l'administrateur.");
					}
				
				}
				
				$successAddress = updateGoodAddress($connexion,$adresse,$_POST["good"]);
			}
			
		}
		//On recharge l'adresse et les descriptions pour que l'affichage soit à jour
		$adresse = getGoodAddress($connexion,$_POST["good"]);
		$descriptions = getGoodDescriptions($connexion,$_POST["good"]);
		
		require('Views/editerbienproprio.php');
		
	}
	else
	{

		if (isset($_POST["supprimer"]))
		{
			
			$supprimerAlert = true;
			
		}
		else if (isset($_POST["supprimervalider"]))
		{
			
			if (deleteGood($connexion,$_POST["good"]))
			{
				$supprimerDone = true;	
				$goods = getProprioGoods($connexion); //On recharge les nouveaux biens
			}
		
		}
		else if (isset($_POST["editervalider"]))
		{
			
			if (applyGoodEdition($connexion,$_POST["good"]))
			{
				$editedDone = true;
			}
			
		}
		
		require('Views/gererbienproprio.php');
		
	}

}
else
{
	require('Views/gererbienproprio.php');
}

?>
